home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / amiga / sipp.lha / sipp / demo / woodtest.c < prev   
C/C++ Source or Header  |  1993-03-13  |  2KB  |  84 lines

  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. #include <sipp.h>
  5. #include <shaders.h>
  6. #include <primitives.h>
  7.  
  8.  
  9. Wood_desc wood_surf = {
  10.     0.5, 
  11.     0.0, 
  12.     0.99, 
  13.     10.0, 
  14.     {0.770,  0.568,  0.405}, 
  15.     {0.468,  0.296,  0.156},
  16.     {1.0, 1.0, 1.0}
  17. };
  18.  
  19.  
  20. extern char *optarg;
  21.  
  22. main(argc, argv)
  23.     int    argc;
  24.     char **argv;
  25. {
  26.     FILE    *fp ;
  27.  
  28.     char    *imfile_name;
  29.     int      mode;
  30.     int      c;
  31.     int      size;
  32.  
  33.     imfile_name = "wood.ppm";
  34.     mode = PHONG;
  35.     size = 256;
  36.  
  37.     while ((c = getopt(argc, argv, "pgfls:")) != EOF) {
  38.         switch (c) {
  39.           case 'p':
  40.             mode = PHONG;
  41.             imfile_name = "wood.ppm";
  42.             break;
  43.  
  44.           case 'g':
  45.             mode = GOURAUD;
  46.             imfile_name = "wood.ppm";
  47.             break;
  48.  
  49.           case 'f':
  50.             mode = FLAT;
  51.             imfile_name = "wood.ppm";
  52.             break;
  53.  
  54.           case 'l':
  55.             mode = LINE;
  56.             imfile_name = "wood.pbm";
  57.             break;
  58.  
  59.           case 's':
  60.             size = atoi(optarg);
  61.             break;
  62.         }
  63.     }
  64.  
  65.     sipp_init();
  66.  
  67.     lightsource_create(1.0, 1.0, 1.0, 0.9, 0.9, 0.9, LIGHT_DIRECTION);
  68.  
  69.     object_add_subobj(sipp_world, sipp_block(4.0, 3.0, 3.0, &wood_surf,
  70.                                              wood_shader, WORLD));
  71.  
  72.     camera_params(sipp_camera, 10.0, 10.0, 20.0,  0.0, 0.0, 0.0,  
  73.                   0.0, 1.0, 0.0,  0.125);
  74.  
  75.     printf("Rendering, wait...");
  76.     fflush(stdout);
  77.  
  78.     fp = fopen(imfile_name, "w");
  79.     render_image_file(size, size, fp, mode, 3);
  80.     printf("Done.\n");
  81.  
  82.     exit(0);
  83. }
  84.